/**
 * 元素 (数据类)
 */
function sElement(type) {
    var _sType = type;

    if(_sType){
        try{
            Object.defineProperty(this, "_sType", {
                get: function(){
                    return _sType;
                },
                enumerable: true
            });
        }catch(e){
            console.error(e);
        }
    }

    Object.defineProperty(this, "_pType", {
        get: function(){
            return "sElement";
        },
        enumerable: true
    });

    /**
     * 表示元素经过函数初始化
     * 主要用于区分通过函数构造和通过JSON构造
     */
    Object.defineProperty(this, "initialize", {
        get: function(){
            return true;
        } 
    });

    sEventTarget.call(this);
}

/**
 * 将sEventTarget的原型方法和属性赋值给sElement原型
 */
for(let i in sEventTarget.prototype){
    sElement.prototype[i] = sEventTarget.prototype[i];
}